package cn.gov.pbc.gd.credit.api.log;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import com.liu.jbase.PageListVo;

import cn.gov.pbc.gd.credit.vo.log.LogInquiryVo;

/**
 * @date 2017年5月13日
 * @time 下午5:16:38
 * @author liuxingmi
 * @desc 
 * @param 
 */
public interface ILogInquiryApi {

    /**
     * 保存数据
     * 
     * @param entity
     */
    public void insert(LogInquiryVo entity) throws Exception;

    /**
     * 根据ID更新数据
     * 
     * @param id
     * @param key
     * @param value
     */
    public void updateById(Serializable id, String key, String value) throws Exception;

    /**
     * 更加条件更新数据
     * 
     * @param query
     * @param key
     * @param value
     */
    public void update(LogInquiryVo vo) throws Exception;

    /**
     * 更加条件更新数据
     * 
     * @param query
     * @param key
     * @param value
     */
    public void update(LogInquiryVo vo, String key, String value) throws Exception;
    

    /**
     * 根据ID删除数据
     * 
     * @param id
     */
    public void deleteById(Serializable id) throws Exception;

    /**
     * 根据条件删除数据
     * 
     * @param query
     */
    public void deleteByQuery(LogInquiryVo vo) throws Exception;

    /**
     * 根据ID查询数据
     * 
     * @param id
     * @return
     */
    public LogInquiryVo getOneById(Serializable id) throws Exception;

    /**
     * 根据query查询数据
     * 
     * @param id
     * @return
     */
    public LogInquiryVo getOne(LogInquiryVo vo) throws Exception;

    /**
     * 获取所有数据
     * 
     * @return
     */
    public List<LogInquiryVo> getAll(Class<LogInquiryVo> entity) throws Exception;

    /**
     * 获取所有数据
     * 
     * @return
     */
    public List<LogInquiryVo> getAll(LogInquiryVo vo) throws Exception;

    /**
     * 根据条件获取总数
     * 
     * @param query
     * @return
     */
    public long getCount(LogInquiryVo vo) throws Exception;

    /**
     * 根据条件查询分页
     * 
     * @param query
     * @param page
     * @return
     */
    public PageListVo<LogInquiryVo> getPage(LogInquiryVo vo, PageListVo<LogInquiryVo> page) throws Exception;
    
    /**
     * @author liuxingmi
     * @datetime 2017年6月20日 下午3:34:29
     * @desc 统计查询量
     * @param vo
     * @return
     * @throws Exception Map<String,Object>
     */
    public Map<String, Object> totalForPage(LogInquiryVo vo) throws Exception;

}
